import axios from "axios";
import qs from "qs";
import {Message} from "iview";
import config from "@/config";
import store from "@/store";

const {env, baseURL, timeout} = config;
// 创建 axios 实例
const ax = axios.create({
  // 是否跨站点访问控制请求使用凭证(Cookie)
  withCredentials: true,
  baseURL: localStorage.getItem("newBaseAPI") || baseURL, // 配置接口地址
  // 修改请求的数据再发送到服务器
  transformRequest: [
    data => qs.stringify(data) // 序列化请求的数据
  ],
  // 修改请求的数据再发送到服务器
  // transformRequest: [
  //   data => JSON.stringify(data) // 序列化请求的数据
  // ],

  // 修改请求头信息
  /*headers: {
    'Content-Type': 'application/json'
  },*/
  timeout: timeout // 配置请求超时
});

// 添加 axios 实例响应拦截器
ax.interceptors.response.use(
  response => {
    const {data: apiResult} = response;
    // const AUTH_TOKEN = data['data']['auth_token'] // 获取用户 AUTH_TOKEN
    // if (AUTH_TOKEN) {
    //   setAuthToken(AUTH_TOKEN) // 配置默认参数
    // }
    // 用户 TOKEN 失效
 /*   if (apiResult.code > 0) {
      Message.error(apiResult.message)
      if (apiResult.code === 1001) {
        location.href = "/#/login"
        return apiResult;
      }
    }*/
    return apiResult.data
  },
  error => {
    const {response, message, config} = error;
    if (response) {
      store.commit("RES_ERROR", response); // 响应错误数据
    } else {
      Message.error({
        content: message
      });
    }
    console.log(config);
  }
);

ax.defaults.headers.common["UserType"] = "sysUser"
ax.defaults.headers.common["DeviceId"] = localStorage.getItem("DeviceId");

// 刷新重新配置默认参数
var userInfo = sessionStorage.getItem("userInfo");
if (userInfo) {
  userInfo = JSON.parse(userInfo)
  console.log('------------ userInfo --------------')
  console.log(userInfo)
  ax.defaults.headers.common["Authorization"] = userInfo.user_token
}

export default ax;
